package com.tbs.easyhomemoneyserver.service;

import com.tbs.easyhomemoneyserver.DO.ApiLimit;
import com.tbs.easyhomemoneyserver.exception.WarnException;
import com.tbs.easyhomemoneyserver.interfaces.IRightAuthorization;
import com.tbs.easyhomemoneyserver.model.ApiRequest;
import com.tbs.easyhomemoneyserver.model.ApiRightDTO;

import java.util.Map;
import java.util.Set;

public interface IApiLimitService {

    /**
     * 根据请求路径获取当前启用的需要的权限
     * @param url
     * @return
     */
    ApiRightDTO getEnabledRights(String url);

    /**
     * 获取用户拥有的权限
     * @param userid 用户id
     * @return Map key表示roleType Set中是role,对应ApiLimit
     */

    Map<Integer, Set<String>> findUserRights(Long userid);

    /**
     * 根据ApiLimit获取权限验证的方法
     * @param limit
     * @return
     */
    public IRightAuthorization getAuthMethod(ApiLimit limit);

    /**
     * 获取拦截的登录信息
     * @param loginId 登录id
     * @return
     * @throws WarnException
     */
    ApiRequest getLoginInfo(String loginId) throws WarnException;

}
